﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.Sql;
using System.Data.SqlClient;
using Projeto.Utilidades;

namespace Projeto.Classes.Conexao
{
    public class TipoDescarte
    {
        //propriedades
        private SqlDataAdapter adapter;
        //private SqlDataReader reader;
        public DataTable dataTable;
        public Exception error;
        private baseConnection connection;
        private int rowsAffected = 0;

        //métodos
        public bool InsertTipoDescarte(Objeto.TipoDescarte value) 
        {
            try
            {
                //cria conexão
                connection = new baseConnection();
                connection.begin(constants.INS_TIPO_DESCARTE);//string de conexão, connection e command criados
                //cria operação (configura parametros)
                connection.addParameterToCommand(constants.PARAM_DESCRICAO, value.ds_tipo_descarte);
                //abre a conexão
                connection.openConnection();
                //executa operação
                connection.command.ExecuteNonQuery();
                rowsAffected = 1;
            }
            catch (Exception ex)
            {
                error = new Exception();
                error = ex;
                rowsAffected = 0;
            }
            finally 
            {
                //fecha conexão
                if (!connection.IsClose()) 
                {
                    connection.closeConnection();
                }
            }
            //finaliza o método
            if (rowsAffected == 1)
            {
                return true;
            }
            else 
            {
                return false;
            }
        }
        public bool UpdateTipoDescarte(Objeto.TipoDescarte value) 
        {
            try 
            {
                //cria conexão
                connection = new baseConnection();
                connection.begin(constants.UPD_TIPO_DESCARTE);
                //cria operação (configura os parametros, pois o command ja foi criado)
                connection.addParameterToCommand(constants.PARAM_ID, value.id_tipo_descarte);
                connection.addParameterToCommand(constants.PARAM_DESCRICAO, value.ds_tipo_descarte);
                //abre conexão
                connection.openConnection();
                //executa operação
               connection.command.ExecuteNonQuery();
               rowsAffected = 1;
            }
            catch (Exception ex) 
            {
                error = new Exception();
                error = ex;
                rowsAffected = 0;
            }
            finally 
            {
                //fecha conexão
                if (!connection.IsClose()) 
                {
                    connection.closeConnection();
                }
            }

            connection = null;

            if (rowsAffected == 1)
            {
                return true;
            }
            else 
            {
                return false;
            }
            
        }
        public bool DeleteTipoDescarte(Objeto.TipoDescarte value) 
        {
            try
            {
                //cria a conexão
                connection = new baseConnection();
                //cria a operação
                connection.begin(constants.DEL_TIPO_DESCARTE);
                connection.addParameterToCommand(constants.PARAM_ID, value.id_tipo_descarte);
                //abre a conexão
                connection.openConnection();
                //executa operação
                connection.command.ExecuteNonQuery();
                rowsAffected = 1;
            }
            catch (Exception ex) 
            {
                error = new Exception();
                error = ex;
                rowsAffected = 0;
            }
            finally 
            {
                //fecha conexão
                if (!connection.IsClose()) 
                {
                    connection.closeConnection();
                }
            }

            if (rowsAffected == 1)
            {
                return true;
            }
            else 
            {
                return false;
            }
        }
        public bool SelectTipoDescarte() 
        {
            try 
            {
                //cria a conexão
                connection = new baseConnection();
                //cria a operação
                connection.begin(constants.SEL_TIPO_DESCARTE);
                dataTable = new DataTable();
                //abre a conexão
                connection.openConnection();
                //executa a operação
                adapter = new SqlDataAdapter(connection.command);
                adapter.Fill(dataTable);
                rowsAffected = 1;
            }
            catch (Exception ex)
            {
                error = new Exception();
                error = ex;
                rowsAffected = 0;
            }
            finally 
            {
                //fecha conexão
                if (!connection.IsClose()) 
                {
                    connection.closeConnection();
                }
            }

            if (rowsAffected == 1)
            {
                return true;
            }
            else 
            {
                return false;
            }
        }
    }
}
